package guiasaude.reps;

import util.iteratorGeral.IIteratorRegistro;
import excecoes.ObjetoInexistenteException;
import excecoes.ObjetoJaExistenteException;
import excecoes.RepositorioException;
import guiasaude.UnidadeSaude;

public interface IRepositorioUnidadeSaude {

	public abstract int insere(UnidadeSaude us) throws RepositorioException,
			ObjetoJaExistenteException;

	public abstract void atualiza(UnidadeSaude us) throws RepositorioException,
			ObjetoInexistenteException;

	public abstract void deleta(int codigo) throws RepositorioException,
			ObjetoInexistenteException;

	public abstract boolean existe(int codigo) throws RepositorioException;

	public abstract UnidadeSaude procura(int codigo)
			throws RepositorioException, ObjetoInexistenteException;

	public abstract IRepositorioUnidadeSaude getListaUnidadeSaude()
			throws RepositorioException, ObjetoInexistenteException;

	// metodo inserido na fase de construcao - pega as unidades de saude de uma
	// especialidade
	public abstract IRepositorioUnidadeSaude getListaUnidadeSaudeporEspecialidade(
			int codEspecialidade) throws RepositorioException,
			ObjetoInexistenteException, ObjetoJaExistenteException;

	public abstract int size();
	
	public UnidadeSaude getElemento(int posicao);

	public IteratorUnidadeSaude getIterator();
}